<?php
class CmsMenuForm {
	
	private $errors = array(
					'name' => array(), 
					'alias' => array(),
					'menu_type_id' => array()
				);

				
	public function __construct($post_data,$menu_id=null) {
		
		$menu_name = trim($post_data['name']);
		if ($menu_name=='') {
			array_push($this->errors['name'],'Название раздела не может быть пустым');
		}
		if ($post_data['menu_type_id']=='1') {
			$menu_alias = trim($post_data['alias']);
			if ($menu_alias!='') {
				if (!MF_Main::getInstance()->Utils->file_name_validator($menu_alias)) {
					array_push($this->errors['alias'],'Алиас должен состоять из латинских символов, цыфр, знаков дефис и подчеркивание');
				}
				
				try {
					$find_result = MF_Main::getInstance()->Menu->getPointByAlias($menu_alias);
					if ($find_result->menu_id!=$menu_id) {
						array_push($this->errors['alias'],'Попытка назначить неуникальный алиас');
					}
				} catch (Exception $e) {}
				
			}
		} elseif ($post_data['menu_type_id']=='3') {
			if ($post_data['direct_url']=='') {
				array_push($this->errors['menu_type_id'],'Поле с Url необходимо заполнить');
			}
		}
		
	}
	
	public function isValid() {
		if (count($this->errors['name'])==0 && count($this->errors['alias'])==0 && count($this->errors['menu_type_id'])==0) {
			return true;
		} else {
			return false;
		}
	}
	
	public function getErrors() {
		return $this->errors;
	}
	
	
}
/*class CmsMenuForm extends Zend_Form {
	
	public function __construct($options = null) {
		parent::__construct($options);
		
		$menu_name = new Zend_Form_Element_Text('name');
		$menu_name->setRequired(true)
			->addFilter('StripTags')
			->addFilter('StringTrim')
			->addValidator('NotEmpty');
		$this->addElement($menu_name);

		$menu_alias = new Zend_Form_Element_Text('alias');
		$menu_alias->addFilter('StripTags')
			->addValidator('regex', false, array('/^[a-z]/'))
			->addValidator('regex', false, array('/^[0-9]/'))
			->addFilter('StringTrim');
		$this->addElement($menu_alias);
	}
	
}*/
?>